Tema 13 - Otros algoritmos de aprendizaje supervisado

Análisis de Datos Multivariantes aplicado al Marketing - Curso 2023/24
Universidad de Alicante

Prof.: Pedro Albarrán

Dpto. de Fundamentos del Análisis Económico. Universidad de Alicante

Prof.: Alberto Pérez Bernabeu

‘Naive Bayes’

  • En un problema de clasificacón para una variable categórica \(y\), tenemos que estimar \(\Pr(y=c|\mathbf{x})\)

    • Dada una observación nueva \(\mathbf{x^*}\), podemos calcular la probabilidad de cada clase

    • Clasificamos esta observación en la clase con mayor probabilidad

  • En regresión logística, usamos un modelo paramétrico para la probabilidad \(\Pr(y=c|\mathbf{x}) = \Lambda(\beta_0 + \beta_1 \mathbf{x})\)

  • ¿Y si usamos el Teorema de Bayes? \[ \Pr(y|\mathbf{x}) = \dfrac{\Pr(y,\mathbf{x})}{\Pr(\mathbf{x})} = \dfrac{\Pr(\mathbf{x}|y)\Pr(y)}{\Pr(\mathbf{x})} \]

Ejemplo con una sola variable explicativa

  • En lo datos de ingresos en el Censo EE.UU., ¿cuál es la probabilidad de ser de renta alta (> 50 mil dólares) si el individuo es blanco?

\[\Pr(>50K|white) = \dfrac{\Pr(white|>50K)\Pr(>50K)}{\Pr(white)}\]

  • De los datos obtenemos estas cifras:
censo <- read_csv("https://raw.githubusercontent.com/albarran/00datos/main/census.csv") %>% mutate(income = factor(income))
prop.table(table(censo$income,censo$race), margin = 1)
prop.table(table(censo$income))
prop.table(table(censo$race))
  • Luego, \(\Pr(>50K|white) =\) 0.9076648 \(\times\) 0.2408096 / 0.8542735 = 0.2408096

‘Naive Bayes’: caso general

  • Supuesto simplificador con varias variables explicativas: estas son condicionalmente independientes (poco realista=naive) \[ \Pr(\mathbf{x}|y)=\prod_{j=1}^p \Pr(x_j|y)\]

  • Se puede mejorar la estimación de las probabilidades condicionales \(\Pr(x_j|y)\) usando estimadores no-paramétricos de la densidad (“kernels”)

  • En tidymodels se usa el motor naivebayes de la biblioteca discrim

  • NO necesita preprocesado de los datos salvo que las variables explicativas categóricas deben incluirse como factores

  • Tenemos dos hiper-parámetros relacionados con la estimación de la densidad: smoothness (suavizado del “kernel”) y corrección de Laplace

https://parsnip.tidymodels.org/reference/details_naive_Bayes_naivebayes.html

–>

‘Support Vector Machine’ (SVM)

  • Para un problema de clasificación, SVM encuentra el hiperplano que mejor separa los datos por su clase

  • Con dos variables explicativas, se puede visualizar en un gráfico en 2D

  • El hiperplano es una línea, \(\beta_0 + \beta_1 X_1 + \beta_2 X_2 = 0\), cuyos coeficientes debemos encontrar
  • El hiperplano óptimo es el que tiene mayor margen = distancia a los datos más cercanos (llamados vectores de soporte)

SVM (cont.)

  • Los datos no suelen ser linealmente separables: se usa una función \(\phi(z)\), denominada kernel, para transformar los datos a un nuevo espacio de mayor dimensión
  • Para regresión SVM usa el “truco del kernel” para realizar un análisis de regresión lineal en el espacio de mayor dimensionalidad

SVM (y 3)

  • Las variables numéricas deben ser estandarizadas y centradas; las variables categóricas deben ser convertidas a variables dummies

  • En tidymodels se pueden usar

    • kenels: lineal con svm_linear(), radial con svm_rbf() y polinomial con svm_poly()

    • mediante las bibliotecas LiblineaR (solo kernel lineal) y kernlab

  • Todos tienen un hiperparámetro de coste, cost, de predecir en el lado incorrecto del margen

  • Existen hiperparámetros adicionales para kernel radial (rbf_sigma) y polinomial (degree, scale_factor)

  • En problemas de regresión existe otro hiperparámetro máś, margin

Redes Neuronales (artificiales)

  • Una red neuronal es una implementación matemática de modelos de estudio del cerebro humano: un grafo dirigido en varias fases.

  1. Un nodo para cada variable de entrada

  2. Nodos especificados como capas ocultas

  3. Cada nodo oculto se conecta a nuevas variables de salida

  • Dos nodos adicionales de control: uno conectado a los nodos ocultos y otro al de salida

Redes Neuronales: nodos-percertrones

  • En cada nodo oculto se procesa, combinan, agrega la información de los nodos precedentes mediante unos pesos

  • Esto es “similar” a una regresión logística

Redes Neuronales: procedimiento

  • El algoritmo busca iterativamente el conjunto óptimo de pesos (“coeficientes”) para cada nodo.

  • Entonces, la red neuronal puede hacer predicciones para nuevas entradas ejecutando estos valores a través de la red.

‘Deep Learning’

‘Ensembling’. ‘Boosting’

  • Los métodos de ensembling (“juntar”) usan varios algoritmos para obtener una mejor predicción que la de cada algoritmo por separado

    • Ya hablamos de Boostrap aggregation o bagging: es un caso particular de model averaging, a su vez un tipo de ensembling

    • Otros tipos incluyen: clasificador óptimo bayesiano, Bayesian model averaging, Bayesian model combination, bucket of models, stacking, etc.

  • Boosting es un tipo muy popular de ensembling donde cada nuevo modelo se entrena dando más peso a las observaciones que se predijeron peor en el anterior

    • Suele funcionar mejor que bagging, pero tiene una mayor tendencia al sobreajuste

    • La implementación más común es Adaboost (aunque nueva variantes parecen mejorarlo)